package 算法;

import java.util.ArrayList;

public class BasicSearchDemo {
    public static void main(String[] args) {
        /*
        基本查找/顺序查找

        课堂练习1：
        需求：定义一个基本查找方法，查询某个元素是否存在/在数组中的索引位置
        核心：从0索引开始查找
        定义一个方法，利用基本查找，查询某个元素的存在

        课堂练习2：
        需求：定义一个方法利用基本查找，查询某个元素在数组中的位置
        需求：需要考虑数组中元素有重复的可能性
        {123,2343,55,6,7,8345,345,8,6}中
        我要查找的是6，返回的索引既要有3，也要有8
        */


            int[]arr={123,2343,55,6,7,8345,345,8,6};
            int number=6;
        System.out.println(basicsearch(arr,number));
        System.out.println(basicsearch1(arr,number));
    }




//              课堂练习一
    public static int basicsearch(int[]arr,int number){
//        利用基本查找来查找number在数据中存在的索引，仅返回一个数组
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]==number){
//              返回元素在数组中的索引
                return i;
            }
        }
//        找不到则返回-1
        return -1;
    }
    /*
        查询数组中是否含有需要的元素，
    public static boolean basicsearch(int[]arr ,int number){
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]==number)
            return true;
        }
        return false;
    }
*/
//               课堂练习二

    public static ArrayList<Integer> basicsearch1(int[]arr, int number){
//        通过该方法将查找数组中所有符合要求的元素并返回索引值
        ArrayList<Integer> list=new ArrayList<>();
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]==number)
                list.add(i);
        }
        return list;
    }
}
